home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PsL Monthly 1993 December
/
PSL Monthly Shareware CD-ROM (December 1993).iso
/
prgmming
/
dos
/
c
/
datelib.exe
/
NOW.C
< prev
next >
Wrap
C/C++ Source or Header
|
1992-03-27
|
3KB
|
102 lines
static char now_prog[] = "@(#)Aktuelles Zeit ermitteln";
static char now_ver[] = "@(#)v1.00/kr ; 09.06.91";
/* now Ermitteln der aktuellen Zeit aus der Systemzeit.
**
** Autor Klaus Rath
**
** Deklaration char *now(int format);
**
** Beschreibung Die Funktion liest die Systemzeit aus und gibt einen String
** im gewünschten Format zurück. Die aufrufende Funktion muß
** deshalb sicherstellen, daß ein char-Array ausreichender
** Größe definiert ist, oder sich zum Aufrufzeitpunkt genügend
** Speicherplatz per malloc besorgen.
** Erlaubte Formate, ihre Ausprägung und ihre Arraylänge:
** 1 hh:mm:ss 9
** 2 hh:mm 6
** 3 hh.mm.ss 9
** 4 hh.mm 6
** 5 hhmm 5
** 6 hhmmss 7
** Im Fehlerfall gibt now einen (char *)NULL zurück!
**
** Änderungen 1.00 ; 09.06.91
** - Erste Version
** 1.10 ; 10.06.91
** - Umkopierung auf sprintf() umgestellt.
*/
#include <stdio.h>
#include <time.h>
#include <string.h>
#ifdef __TURBOC__
#include <sys\types.h>
#include <stdlib.h>
#else
#include <sys/types.h>
#endif
#include "datum.h"
char *now(int format)
{
char stunden[3];
char minuten[3];
char sekunden[3];
int stunden_z;
int minuten_z;
int sekunden_z;
char systemzeit_s[26];
time_t systemzeit;
struct tm *heute;
char rueckgabe[9];
/* Systemzeit holen :
*/
time(&systemzeit);
strcpy(systemzeit_s,ctime(&systemzeit));
heute = localtime(&systemzeit);
stunden_z = heute->tm_hour;
minuten_z = heute->tm_min;
sekunden_z = heute->tm_sec;
/* Formatiert umkopieren :
*/
sprintf(stunden, "%02d",stunden_z);
sprintf(minuten, "%02d",minuten_z);
sprintf(sekunden,"%02d",sekunden_z);
/* Rückgabe nach Vorgabe zusammensetzen :
*/
if ( format == TI_HM_D || format == TI_HMS_D ) {
strcpy(rueckgabe,stunden);
strcat(rueckgabe,":");
strcat(rueckgabe,minuten);
if ( format == TI_HMS_D ) {
strcat(rueckgabe,":");
strcat(rueckgabe,sekunden);
}
}
else if ( format == TI_HM_P || format == TI_HMS_P ) {
strcpy(rueckgabe,stunden);
strcat(rueckgabe,".");
strcat(rueckgabe,minuten);
if ( format == TI_HMS_P ) {
strcat(rueckgabe,".");
strcat(rueckgabe,sekunden);
}
}
else if ( format == TI_HM_DB || format == TI_HMS_DB ) {
strcpy(rueckgabe,stunden);
strcat(rueckgabe,minuten);
if ( format == TI_HMS_DB ) {
strcat(rueckgabe,sekunden);
}
}
else
return(NULL);
return(rueckgabe);
} /* ENDE: now() */